package com.company;
import java.util.ArrayList;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random rand = new Random();
int[] dizi = new int[500];
ArrayList<Integer> asallar = new ArrayList<>();
for (int i = 0; i<500; i++){
dizi[i] = 1+rand.nextInt(1000);
}
for (int i = 0; i<500; i++){
if (asalMi(dizi[i])){
asallar.add(i);
}
}
}
public static boolean asalMi(int sayi){
if (sayi == 1){
return false;
}
if (sayi == 2){
return true;
}
if (sayi%2 == 0){
return false;
}
int i = 3;
while (i<=Math.sqrt(sayi)){
if (sayi%i == 0){
return false;
}
i +=2 ;
}
return true;
}
}
Arraylist kullanmayacaksan önce kaç adet asal olduğu sayısını belirleyip sonra dizini oluşturacaksın.
Asal kontrolünü en az kontolle en efektif şekilde yaptırdım.
Asal sayının asal olup olmadığını kontrol ederken kökünden büyük sayılar için kontrol ettirilmez bunu bildiğini varsayıyorum.
Ayrıca tek çift sayı 2 olduğu için çift sayıların da kontrolü 2 den sonra yok